1. Field of the Invention
This invention generally relates to decoding of color barcodes, and more particularly it relates to a method for robust decoding of color barcode printed with extremely small data cells.
2. Description of Related Art
Color barcodes are a widely used type of machine-readable symbology for recording digital data. Typically in a two dimensional (2D) barcode, a given area is divided into small cells, where a majority of the cells are used to encode data, which are often referred to as “data cells”, and a small portion of the cells are used for locating and decoding the barcode, which for example include the “locators” or “locator cells”, etc. Each data cell may have a number of data representations. For example, if only black and white colors are used for the cells, then each cell has two data representations. However, if gray-scale is used for the cells, then each cell can have three or more data representations. In addition, more color schemes have been used for color barcode cells to improve their data capacities by increasing the possible number of data representations of each data cell.
Generally, a number of factors may affect the Data Capacity of a color barcode, including: (1) the Resolution, which may be measured by pixels per inch or “ppi”; (2) the Cell Area, which determines the number of pixels per cell; (3) the Number of Representations of each data cell; and (4) the Data Ratio, which is the number of data cells divided by the total number of cells in a barcode. The relationship between these factors can be expressed as:
      Data    ⁢                  ⁢    Capacity    ⁢                  ⁢          (              Bit                  Inch          2                    )        =                              (          Resolution          )                2                    Cell        ⁢                                  ⁢        Area              ×                  log        2            ⁡              (                  Num          ⁢                                          ⁢          of          ⁢                                          ⁢          Representations                )              ×          (              Data        ⁢                                  ⁢        Ratio            )      When the shape of the cells is square, the above equation may be written as:
      Data    ⁢                  ⁢    Capacity    ⁢                  ⁢          (              Bit                  Inch          2                    )        =                    [                  Resolution                      Cell            ⁢                                                  ⁢            Width            ⁢                                                  ⁢                          (                              Num                ⁢                                                                  ⁢                of                ⁢                                                                  ⁢                pixels                            )                                      ]            2        ×                  log        2            ⁡              (                  Num          ⁢                                          ⁢          of          ⁢                                          ⁢          Representations                )              ×          (              Data        ⁢                                  ⁢        Ratio            )      
In general, resolution is limited by hardware, and the potential improvement of data ratio is also limited. To increase the data capacity of a color barcode, either the cell area is reduced to increase the number of data cells or the number of representations of each data cell is increased. In both cases, it is important to have a reliable decoding technique to ensure that the encoded data can be decoded with minimum errors. For the approach of reducing the cell area to increase data capacity, it is desirable to have a robust decoding mechanism for decoding color barcode printed with extremely small data cells.